Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Лабораторна робота № 5

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
ІКТА
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2010
Тип роботи:
Лабораторна робота
Предмет:
Мікропроцесори
Група:
ІБ - 43

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ ДЕРЖАВНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»  Побудова модуля управління системи контролю доступу на AVR-мікроконтролерах Лабораторна робота № 5 З курсу «Мікропроцесорні пристрої» Львів 2010 Мета роботи – ознайомитись з побудовою інфрачервоних детекторів руху і їх програмно апаратною реалізацією на AVR-мікроконтролерах. ЗАВДАННЯ Домашня підготовка до роботи 1.Вивчити теоретичний матеріал. 2.Вивчити основні властивості МК необхідні для виконання лабораторної роботи. 3.Підготувати програму функціонування охоронної системи Виконати в лабораторії 1.Створити проект в CodeVision, ввести свою програму, провести її асемблювання. 2.В режимі покрокової відладки переконатися в правильності роботи програми. 3.Відкрити файл-схему у програмі Proteus, підключити до МК hex-файл. 4.Запустити режим симуляції схеми та перевірити правильність функціонування охоронної системи у всіх режимах роботи.  ТЕКСТ ПРОГРАМИ #include <90S2313.h> #include <delay.h> // Підтримка 1-Wire інтерфейсу #asm .equ __w1_port=0x18 // Для підкл. iButton викор. PORTB .equ __w1_bit=5 // Вивід 5 - РВ5 #endasm #include <1wire.h> // Підтримака І2С інтерфейсу #asm .equ __i2c_port=0x18 // Для інтерфейсу I2C використовується PORTB .equ __sda_bit=1 // SDA = PB1 .equ __scl_bit=2 // SCL = PB2 #endasm #include <i2c.h> // SPI Settings //#define SPI PORTD #define NCS 3 //PD3 #define SCLK 4 //PD4 #define MOSI 5 //PD5 #define MISO 6 //PD6 // адреса масиву легальних ключів #define REG_KEY_ADDR 16 // адрера початку журналу #define EVENT_LIST 0x60 // максимальна кількість записів в журналі #define MAX_EVENTS 95 // маска для вибору необхідних даних з ГРЧ #define MASK 0b01110000 // час відкриття дверей (cек.) #define OPEN_TIME 10 typedef unsigned char BYTE; // структура одного запису реєстраційного журналу struct RegRec { unsigned char ID[8]; // ідентифікатор користувача BYTE date[3]; // 0 - дата, 1 - місяць, 2 - рік unsigned char type; // 1 - вхід, 0 - вихід } event; ////////////////////////////////////////////////////////////////////////////////////// // передача одного байту через SPI // повертає отриманий байт BYTE SPI_SendByte(BYTE data) { BYTE temp, res = 0, mask = 0x80; while(mask) { // зберігаємо біт що поступив на вхід temp = PIND & (1<<MISO); if(temp) res|=mask; // формуємо вихідний біт PORTD.MOSI = (data & mask) && 1; #asm("nop"); delay_ms(10); PORTD.SCLK = 1; mask>>=1; PORTD.SCLK = 0; } return res; } /////////////////////////////////////////////////////////////////////////////////// // запис блоку даних через SPI void SPI_Write(const BYTE *buf, BYTE size, unsigned int addr) { if(!buf || !size || size>64) return ; PORTD.SCLK = 0; PORTD.NCS = 0; SPI_SendByte(0b00000110); // дозволити запис в пам'ять PORTD.NCS = 1; // завершити команду #asm("nop"); PORTD.NCS = 0; // розпочати команду SPI_SendByte(0b00000010); // код операції запису в пам'ять SPI_SendByte(addr>>8); // старший байт адреси SPI_SendByte((BYTE)addr); // молодший байт адреси // запис самих даних while(size) SPI_SendByte(*buf++), --size; PORTD.NCS = 1; } //////////////////////////////////////////////////////////////////////// // запис блоку даних через SPI BYTE SPI_Read(BYTE *buf, BYTE size, unsigned int addr) { if(!buf || !size || size>64) return 1; PORTD.SCLK = 0; PORTD.NCS = 0; // розпочати команду SPI_SendByte(0b00000011); // код операції читання з пам'яті SPI_SendByte(addr>>8); // старший байт адреси SPI_SendByte((BYTE)addr); // молодший байт адреси // читання самих даних while(size) *buf++=SPI_SendByte(0), --size; PORTD.NCS = 1; return 0; } //////////////////////////////////////////////////////////////////////////// BYTE FindKey(const BYTE key[8]) { BYTE key_count; BYTE rKey[8],k; int addr = ...
Антиботан аватар за замовчуванням

13.02.2013 01:02

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини